/*
 * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.js.test.fir;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import java.io.File;
import java.util.regex.Pattern;

/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/diagnostics/irInliner")
@TestDataPath("$PROJECT_ROOT")
public class FirJsDiagnosticWithIrInlinerTestGenerated extends AbstractFirJsDiagnosticWithIrInlinerTest {
  @Test
  public void testAllFilesPresentInIrInliner() {
    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
  }

  @Nested
  @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors")
  @TestDataPath("$PROJECT_ROOT")
  public class SyntheticAccessors {
    @Test
    public void testAllFilesPresentInSyntheticAccessors() {
      KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
    }

    @Nested
    @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember")
    @TestDataPath("$PROJECT_ROOT")
    public class PrivateMember {
      @Test
      public void testAllFilesPresentInPrivateMember() {
        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
      }

      @Nested
      @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossFilePrivateLeak")
      @TestDataPath("$PROJECT_ROOT")
      public class CrossFilePrivateLeak {
        @Test
        public void testAllFilesPresentInCrossFilePrivateLeak() {
          KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossFilePrivateLeak"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
        }

        @Test
        @TestMetadata("leakingPrivateCompanionThroughInternalInlineFun.kt")
        public void testLeakingPrivateCompanionThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossFilePrivateLeak/leakingPrivateCompanionThroughInternalInlineFun.kt");
        }

        @Test
        @TestMetadata("leakingPrivateInnerClassThroughInternalInlineFun.kt")
        public void testLeakingPrivateInnerClassThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossFilePrivateLeak/leakingPrivateInnerClassThroughInternalInlineFun.kt");
        }

        @Test
        @TestMetadata("leakingPrivateNestedClassThroughInternalInlineFun.kt")
        public void testLeakingPrivateNestedClassThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossFilePrivateLeak/leakingPrivateNestedClassThroughInternalInlineFun.kt");
        }
      }

      @Nested
      @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossModulePrivateLeak")
      @TestDataPath("$PROJECT_ROOT")
      public class CrossModulePrivateLeak {
        @Test
        public void testAllFilesPresentInCrossModulePrivateLeak() {
          KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossModulePrivateLeak"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
        }

        @Test
        @TestMetadata("leakingPrivateCompanionThroughInternalInlineFun.kt")
        public void testLeakingPrivateCompanionThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossModulePrivateLeak/leakingPrivateCompanionThroughInternalInlineFun.kt");
        }

        @Test
        @TestMetadata("leakingPrivateInnerClassThroughInternalInlineFun.kt")
        public void testLeakingPrivateInnerClassThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossModulePrivateLeak/leakingPrivateInnerClassThroughInternalInlineFun.kt");
        }

        @Test
        @TestMetadata("leakingPrivateNestedClassThroughInternalInlineFun.kt")
        public void testLeakingPrivateNestedClassThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/crossModulePrivateLeak/leakingPrivateNestedClassThroughInternalInlineFun.kt");
        }
      }

      @Nested
      @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/singleFile")
      @TestDataPath("$PROJECT_ROOT")
      public class SingleFile {
        @Test
        public void testAllFilesPresentInSingleFile() {
          KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/singleFile"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
        }

        @Test
        @TestMetadata("usePrivateCompanionThroughInternalInlineFun.kt")
        public void testUsePrivateCompanionThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/singleFile/usePrivateCompanionThroughInternalInlineFun.kt");
        }

        @Test
        @TestMetadata("usePrivateInnerClassThroughInternalInlineFun.kt")
        public void testUsePrivateInnerClassThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/singleFile/usePrivateInnerClassThroughInternalInlineFun.kt");
        }

        @Test
        @TestMetadata("usePrivateNestedClassThroughInternalInlineFun.kt")
        public void testUsePrivateNestedClassThroughInternalInlineFun() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/privateMember/singleFile/usePrivateNestedClassThroughInternalInlineFun.kt");
        }
      }
    }

    @Nested
    @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate")
    @TestDataPath("$PROJECT_ROOT")
    public class TopLevelPrivate {
      @Test
      public void testAllFilesPresentInTopLevelPrivate() {
        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
      }

      @Nested
      @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossFilePrivateLeak")
      @TestDataPath("$PROJECT_ROOT")
      public class CrossFilePrivateLeak {
        @Test
        public void testAllFilesPresentInCrossFilePrivateLeak() {
          KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossFilePrivateLeak"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
        }

        @Test
        @TestMetadata("leakingPrivateClassFromLocalObjectInsideInternalInline.kt")
        public void testLeakingPrivateClassFromLocalObjectInsideInternalInline() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossFilePrivateLeak/leakingPrivateClassFromLocalObjectInsideInternalInline.kt");
        }

        @Test
        @TestMetadata("leakingPrivateClassThroughGenericType.kt")
        public void testLeakingPrivateClassThroughGenericType() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossFilePrivateLeak/leakingPrivateClassThroughGenericType.kt");
        }
      }

      @Nested
      @TestMetadata("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossModulePrivateLeak")
      @TestDataPath("$PROJECT_ROOT")
      public class CrossModulePrivateLeak {
        @Test
        public void testAllFilesPresentInCrossModulePrivateLeak() {
          KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossModulePrivateLeak"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
        }

        @Test
        @TestMetadata("leakingPrivateClassFromLocalObjectInsideInternalInline.kt")
        public void testLeakingPrivateClassFromLocalObjectInsideInternalInline() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossModulePrivateLeak/leakingPrivateClassFromLocalObjectInsideInternalInline.kt");
        }

        @Test
        @TestMetadata("leakingPrivateClassThroughGenericType.kt")
        public void testLeakingPrivateClassThroughGenericType() {
          runTest("compiler/testData/diagnostics/irInliner/syntheticAccessors/topLevelPrivate/crossModulePrivateLeak/leakingPrivateClassThroughGenericType.kt");
        }
      }
    }
  }
}
